We were using the wrong “maximal” model! This is a quick notebook to check what we see when we use the right maximal model to determine how many factors to extract.
7-9yo US Children, 2 characters
Maximal structure, oblimin rotation
convergence not obtained in GPFoblq. 1000 iterations used. A loading greater than abs(1) was detected. Examine the loadings carefully.

Reduced structure, oblimin rotation

Alternative factor retention methods
Parallel analysis suggests that the number of factors = 3 and the number of components = 3

Very Simple Structure
Call: vss(x = x, n = n, rotate = rotate, diagonal = diagonal, fm = fm,
n.obs = n.obs, plot = plot, title = title, use = use, cor = cor)
VSS complexity 1 achieves a maximimum of 0.64 with 2 factors
VSS complexity 2 achieves a maximimum of 0.78 with 3 factors
The Velicer MAP achieves a minimum of 0.01 with 3 factors
BIC achieves a minimum of -2636.75 with 3 factors
Sample Size adjusted BIC achieves a minimum of -549.78 with 5 factors
Statistics by number of factors
vss1 vss2 map dof chisq prob sqresid fit RMSEA BIC SABIC complex
1 0.61 0.00 0.0207 740 1846 7.7e-96 48 0.61 0.091 -2093 251 1.0
2 0.64 0.77 0.0121 701 1171 3.8e-26 28 0.77 0.063 -2561 -340 1.3
3 0.57 0.78 0.0090 663 892 5.7e-09 22 0.82 0.048 -2637 -536 1.6
4 0.53 0.75 0.0096 626 803 1.9e-06 20 0.84 0.044 -2529 -545 1.9
5 0.52 0.73 0.0099 590 721 1.6e-04 18 0.85 0.041 -2419 -550 2.0
6 0.49 0.71 0.0107 555 652 2.7e-03 17 0.86 0.038 -2302 -544 2.1
7 0.50 0.71 0.0113 521 586 2.5e-02 16 0.87 0.034 -2187 -536 2.3
8 0.47 0.67 0.0121 488 527 1.1e-01 14 0.88 0.031 -2071 -525 2.4
eChisq SRMR eCRMS eBIC
1 4475 0.118 0.121 536
2 1568 0.070 0.074 -2164
3 819 0.051 0.055 -2710
4 690 0.046 0.052 -2642
5 566 0.042 0.048 -2575
6 482 0.039 0.046 -2472
7 402 0.035 0.043 -2371
8 337 0.032 0.041 -2261

Clustering within reduced factor space

7-9yo US Children, 9 characters
Maximal structure, oblimin rotation
convergence not obtained in GPFoblq. 1000 iterations used. A loading greater than abs(1) was detected. Examine the loadings carefully.

Reduced structure, oblimin rotation

Alternative factor retention methods
The estimated weights for the factor scores are probably incorrect. Try a different factor extraction method.
Parallel analysis suggests that the number of factors = 3 and the number of components = 3

Very Simple Structure
Call: vss(x = x, n = n, rotate = rotate, diagonal = diagonal, fm = fm,
n.obs = n.obs, plot = plot, title = title, use = use, cor = cor)
VSS complexity 1 achieves a maximimum of 0.82 with 1 factors
VSS complexity 2 achieves a maximimum of 0.9 with 2 factors
The Velicer MAP achieves a minimum of 0.02 with 3 factors
BIC achieves a minimum of -447.53 with 3 factors
Sample Size adjusted BIC achieves a minimum of -41.12 with 7 factors
Statistics by number of factors
vss1 vss2 map dof chisq prob sqresid fit RMSEA BIC SABIC complex
1 0.82 0.00 0.041 170 542 1.8e-40 14.1 0.82 0.141 -276 262 1.0
2 0.77 0.90 0.032 151 374 6.8e-21 8.1 0.90 0.117 -353 125 1.2
3 0.56 0.88 0.022 133 192 5.7e-04 5.2 0.93 0.068 -448 -27 1.5
4 0.57 0.88 0.027 116 156 7.9e-03 4.7 0.94 0.062 -402 -35 1.6
5 0.56 0.87 0.032 100 125 4.5e-02 4.0 0.95 0.055 -356 -40 1.7
6 0.49 0.76 0.036 85 102 1.0e-01 3.5 0.96 0.052 -307 -38 2.0
7 0.49 0.74 0.042 71 76 3.2e-01 3.0 0.96 0.039 -266 -41 2.1
8 0.48 0.77 0.048 58 55 5.8e-01 2.5 0.97 0.023 -224 -40 2.1
eChisq SRMR eCRMS eBIC
1 690 0.121 0.128 -128
2 279 0.077 0.087 -448
3 82 0.042 0.050 -558
4 65 0.037 0.048 -494
5 46 0.031 0.043 -435
6 32 0.026 0.039 -377
7 21 0.021 0.035 -321
8 12 0.016 0.029 -267

Clustering within reduced factor space

4-6yo US Children
Maximal structure, oblimin rotation
A loading greater than abs(1) was detected. Examine the loadings carefully.

Reduced structure, oblimin rotation

Alternative factor retention methods
The estimated weights for the factor scores are probably incorrect. Try a different factor extraction method.
Parallel analysis suggests that the number of factors = 2 and the number of components = 1

An ultra-Heywood case was detected. Examine the results carefully
Very Simple Structure
Call: vss(x = x, n = n, rotate = rotate, diagonal = diagonal, fm = fm,
n.obs = n.obs, plot = plot, title = title, use = use, cor = cor)
VSS complexity 1 achieves a maximimum of 0.84 with 1 factors
VSS complexity 2 achieves a maximimum of 0.87 with 2 factors
The Velicer MAP achieves a minimum of 0.02 with 1 factors
BIC achieves a minimum of -521.5 with 1 factors
Sample Size adjusted BIC achieves a minimum of -46.41 with 4 factors
Statistics by number of factors
vss1 vss2 map dof chisq prob sqresid fit RMSEA BIC SABIC complex
1 0.84 0.00 0.018 170 298 4.7e-09 11.0 0.84 0.084 -521 16.0 1.0
2 0.62 0.87 0.019 151 242 3.5e-06 8.9 0.87 0.077 -486 -8.1 1.4
3 0.43 0.78 0.022 133 192 5.9e-04 7.8 0.88 0.068 -449 -28.2 1.9
4 0.34 0.67 0.023 116 146 3.1e-02 6.6 0.90 0.055 -413 -46.4 2.2
5 0.33 0.61 0.028 100 128 3.1e-02 5.9 0.91 0.057 -354 -37.8 2.4
6 0.32 0.60 0.033 85 104 8.1e-02 5.2 0.92 0.053 -306 -37.1 2.5
7 0.28 0.53 0.039 71 78 2.7e-01 4.5 0.93 0.042 -264 -39.8 2.6
8 0.31 0.55 0.046 58 57 5.3e-01 4.0 0.94 0.027 -223 -39.6 2.5
eChisq SRMR eCRMS eBIC
1 276 0.076 0.081 -544
2 180 0.062 0.069 -547
3 132 0.053 0.063 -509
4 87 0.043 0.055 -472
5 70 0.039 0.053 -412
6 53 0.033 0.050 -357
7 34 0.027 0.044 -308
8 23 0.022 0.040 -256

Clustering within reduced factor space

LS0tCnRpdGxlOiAiUXVpY2sgZGlta2lkIGNoZWNrIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgpXZSB3ZXJlIHVzaW5nIHRoZSB3cm9uZyAibWF4aW1hbCIgbW9kZWwhIFRoaXMgaXMgYSBxdWljayBub3RlYm9vayB0byBjaGVjayB3aGF0IHdlIHNlZSB3aGVuIHdlIHVzZSB0aGUgcmlnaHQgbWF4aW1hbCBtb2RlbCB0byBkZXRlcm1pbmUgaG93IG1hbnkgZmFjdG9ycyB0byBleHRyYWN0LgoKYGBge3IgZ2xvYmFsX29wdGlvbnMsIGluY2x1ZGUgPSBGfQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobz1GLCB3YXJuaW5nPUYsIGNhY2hlPUYsIG1lc3NhZ2U9RikKYGBgCgpgYGB7ciBsaWJyYXJpZXMsIGluY2x1ZGUgPSBGfQpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeShsdWJyaWRhdGUpCmxpYnJhcnkocHN5Y2gpCmxpYnJhcnkocm1zKQpsaWJyYXJ5KGRlbmRleHRlbmQpCmBgYAoKYGBge3IgZnVuY3Rpb25zLCBpbmNsdWRlID0gRn0KIyBtYWtlIGZ1bmN0aW9uIHRvIGNsZWFuIHVwIGtpZCBkYXRhIGZyb20gVVMKY2xlYW5fa2lkX3VzX2Z1biA8LSBmdW5jdGlvbihkZiwgbl90cmlhbHMsIGFnZV9sb3dlciwgYWdlX3VwcGVyKSB7CiAgCiAgaWYoISgiYWdlIiAlaW4lIG5hbWVzKGRmKSkpIHsKICAgIGRmIDwtIGRmICU+JQogICAgICBtdXRhdGUoYWdlID0gTkEpCiAgfQogIAogIGRmX2NsZWFuIDwtIGRmICU+JQogICAgbXV0YXRlKGRvYiA9IHBhcnNlX2RhdGV0aW1lKGRhdGVPZkJpcnRoLCAiJW0vJWQvJXkiKSwKICAgICAgICAgICBkb3QgPSBwYXJzZV9kYXRldGltZShnc3ViKCIyMDE3IiwgIjE3IiwgZGF0ZU9mVGVzdCksICIlbS8lZC8leSIpLAogICAgICAgICAgIGFnZSA9IGlmZWxzZShpcy5uYShhZ2UpLAogICAgICAgICAgICAgICAgICAgICAgICBpbnRlcnZhbChzdGFydCA9IGRvYiwgZW5kID0gZG90KSAvCiAgICAgICAgICAgICAgICAgICAgICAgICAgZHVyYXRpb24obnVtID0gMSwgdW5pdHMgPSAieWVhcnMiKSwKICAgICAgICAgICAgICAgICAgICAgICAgYWdlKSkgJT4lCiAgICBmaWx0ZXIodHJpYWxOdW0gPD0gbl90cmlhbHMpICU+JQogICAgZmlsdGVyKChhZ2UgPj0gYWdlX2xvd2VyICYgYWdlIDwgYWdlX3VwcGVyICsgMSkgfCAjIG91dHNpZGUgb2YgYWdlIHJhbmdlCiAgICAgICAgICAgICBpcy5uYShhZ2UpLCAjIG1pc3NpbmcgYWdlCiAgICAgICAgICAgKHJ0ID49IDI1MCB8IGlzLm5hKHJ0KSksICMgZmFzdCBSVHMKICAgICAgICAgICByZXNwb25zZSAlaW4lIGMoIm5vIiwgImtpbmRhIiwgInllcyIpLCAjIHNraXBwZWQgdHJpYWxzCiAgICAgICAgICAgIWlzLm5hKHN1YmlkKSwgIWlzLm5hKGNhcGFjaXR5KSkgJT4lCiAgICBtdXRhdGUocmVzcG9uc2VOdW0gPSByZWNvZGUocmVzcG9uc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5vIiA9IDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImtpbmRhIiA9IDAuNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAieWVzIiA9IDEpLAogICAgICAgICAgIHJlc3BvbnNlTnVtID0gYXMubnVtZXJpYyhyZXNwb25zZU51bSkpICU+JQogICAgZGlzdGluY3Qoc3ViaWQsIGNhcGFjaXR5LCByZXNwb25zZU51bSkgJT4lCiAgICBtdXRhdGUoY2FwYWNpdHkgPSByZWNvZGUoY2FwYWNpdHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbnNjaW91cyIgPSAiYXdhcmVuZXNzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZW1iYXJyYXNzZWQiID0gImVtYmFycmFzc21lbnQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJndWlsdCIgPSAiZ3VpbHQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoYXBweSIgPSAiaGFwcGluZXNzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibG92ZSIgPSAibG92ZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBhaW4iID0gInBhaW4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcmlkZSIgPSAicHJpZGUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZXByZXNzZWQiID0gInNhZG5lc3MiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmZWFyIiA9ICJmZWFyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmF1c2VhdGVkIiA9ICJuYXVzZWEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0aXJlZCIgPSAiZmF0aWd1ZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlYXNvbmluZyIgPSAiZmlndXJpbmdfb3V0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYW5ncnkiID0gImFuZ2VyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaHVuZ3J5IiA9ICJodW5nZXIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkaXNyZXNwZWN0ZWQiID0gImh1cnRfZmVlbGluZ3MiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjaG9pY2VzIiA9ICJjaG9pY2UiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZW1lbWJlcmluZyIgPSAibWVtb3J5IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVtcGVyYXR1cmUiID0gInRlbXBlcmF0dXJlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVwdGgiID0gImRlcHRoIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAib2RvcnMiID0gInNtZWxsIikpICU+JQogICAgc3ByZWFkKGNhcGFjaXR5LCByZXNwb25zZU51bSkgJT4lCiAgICByZW1vdmVfcm93bmFtZXMoKSAlPiUKICAgIGNvbHVtbl90b19yb3duYW1lcygic3ViaWQiKQogIAogIHJldHVybihkZl9jbGVhbikKICAKfQoKIyBtYWtlIGZ1bmN0aW9uIHRvIGRldGVybWluZSBtYXggbl9mYWN0b3JzLCBnaXZlbiBuX29icyB2YXJpYWJsZXMKbWF4X2ZhY3RfZnVuIDwtIGZ1bmN0aW9uKHApIHsKICAKICBzX21vbWVudHMgPC0gZnVuY3Rpb24ocCkge3AqKHArMSkvMn0KICBwYXJhbV9lc3QgPC0gZnVuY3Rpb24ocCwgaykge3AqayArIHAgLSAoayooay0xKS8yKX0KICBjaGVja19vayA8LSBmdW5jdGlvbihwLCBrKSB7CiAgICBhIDwtIChwLWspXjIKICAgIGIgPC0gcCtrCiAgICByZXR1cm4oaWZlbHNlKGE+YiwgVFJVRSwgRkFMU0UpKQogIH0KICAKICBkZl9jaGVjayA8LSBkYXRhLmZyYW1lKCkKICBmb3IoaSBpbiAxOnApewogICAgZGZfY2hlY2tbaSwiY2hlY2siXSA8LSBjaGVja19vayhwLGkpCiAgfQogIAogIG1heCA8LSBkZl9jaGVjayAlPiUgZmlsdGVyKGNoZWNrKSAlPiUgbnJvdygpCiAgcmV0dXJuKG1heCkKICAKfQoKIyBtYWtlIGZ1bmN0aW9uIHRvIGltcGxlbWVudCBmYWN0b3IgcmV0ZW50aW9uIGNyaXRlcmlhCnJldGVuX2ZhY3RfZnVuIDwtIGZ1bmN0aW9uKGRmLCByb3QpIHsKICAKICBtYXhfZWZhIDwtIGZhKGRmLCBuZmFjdG9ycyA9IG1heF9mYWN0X2Z1bihuY29sKGRmKSksIHJvdGF0ZSA9ICJub25lIikKICBtYXhfdmFjYyA8LSBtYXhfZWZhJFZhY2NvdW50ZWQgJT4lCiAgICBkYXRhLmZyYW1lKCkgJT4lCiAgICByb3duYW1lc190b19jb2x1bW4oInN0YXQiKSAlPiUKICAgIGdhdGhlcihmYWN0b3IsIHZhbHVlLCAtc3RhdCkgJT4lCiAgICBzcHJlYWQoc3RhdCwgdmFsdWUpICU+JQogICAgZmlsdGVyKGBTUyBsb2FkaW5nc2AgPiAxLCBgUHJvcG9ydGlvbiBFeHBsYWluZWRgID4gMC4wNSkKICBuX3JldGVuMSA8LSBucm93KG1heF92YWNjKQogIAogIHJldGVuX2VmYSA8LSBmYShkZiwgbmZhY3RvcnMgPSBuX3JldGVuMSwgcm90YXRlID0gcm90KQogIHJldGVuX2xvYWRpbmdzIDwtIHJldGVuX2VmYSRsb2FkaW5nc1tdICU+JQogICAgZGF0YS5mcmFtZSgpICU+JQogICAgcm93bmFtZXNfdG9fY29sdW1uKCJtYyIpICU+JQogICAgZ2F0aGVyKGZhY3RvciwgbG9hZGluZywgLW1jKSAlPiUKICAgIGdyb3VwX2J5KG1jKSAlPiUKICAgIHRvcF9uKDEsIGFicyhsb2FkaW5nKSkgJT4lCiAgICB1bmdyb3VwKCkKICBuX3JldGVuMiA8LSByZXRlbl9sb2FkaW5ncyAlPiUKICAgIGNvdW50KGZhY3RvcikgJT4lCiAgICBucm93KCkKICAgIAogIHJldHVybihuX3JldGVuMikKCn0KCiMgbWFrZSBmdW5jdGlvbiB0byBwbG90IGhlYXRtYXAgb2YgZmFjdG9yIGxvYWRpbmdzCmhlYXRtYXBfZnVuIDwtIGZ1bmN0aW9uKGRmLCBuX2ZhY3RvcnMsIHJvdCl7CiAgCiAgZWZhIDwtIGZhKGRmLCBuZmFjdG9ycyA9IG5fZmFjdG9ycywgcm90YXRlID0gcm90KQogIGxvYWRpbmdzIDwtIGVmYSRsb2FkaW5nc1tdICU+JQogICAgZmEuc29ydCgpICU+JQogICAgZGF0YS5mcmFtZSgpICU+JQogICAgcm93bmFtZXNfdG9fY29sdW1uKCJtYyIpICU+JQogICAgcm93bmFtZXNfdG9fY29sdW1uKCJvcmRlciIpICU+JQogICAgbXV0YXRlKG9yZGVyID0gYXMubnVtZXJpYyhvcmRlcikpICU+JQogICAgZ2F0aGVyKGZhY3RvciwgbG9hZGluZywgLWMobWMsIG9yZGVyKSkKICAKICBwbG90IDwtIGdncGxvdChsb2FkaW5ncywKICAgICAgICAgICAgICAgICBhZXMoeCA9IGZhY3RvciwgeSA9IHJlb3JkZXIobWMsIGRlc2Mob3JkZXIpKSwgZmlsbCA9IGxvYWRpbmcsIAogICAgICAgICAgICAgICAgICAgICBsYWJlbCA9IGZvcm1hdChyb3VuZChsb2FkaW5nLCAyKSwgbnNtYWxsID0gMikpKSArCiAgICBnZW9tX3RpbGUoY29sb3IgPSAiYmxhY2siKSArCiAgICBnZW9tX3RleHQoc2l6ZSA9IDMpICsKICAgIHNjYWxlX3hfZGlzY3JldGUocG9zaXRpb24gPSAidG9wIikgKwogICAgc2NhbGVfZmlsbF9kaXN0aWxsZXIobGltaXRzID0gYygtMS4wMiwgMS4wMiksIHBhbGV0dGUgPSAiUmRZbEJ1IiwKICAgICAgICAgICAgICAgICAgICAgICAgIGd1aWRlID0gZ3VpZGVfY29sb3JiYXIoYmFyaGVpZ2h0ID0gMTUpKSArCiAgICB0aGVtZV9taW5pbWFsKCkKICAKICByZXR1cm4ocGxvdCkKICAKfQpgYGAKCmBgYHtyIGRhdGEsIGluY2x1ZGUgPSBGLCB3YXJuaW5nID0gRkFMU0V9CiMgVVMgNy05eW8sIDIgY2hhcmFjdGVycwpkX3VzNzlfMmNoYXIgPC0gcmVhZC5jc3YoIi9Vc2Vycy9rd2Vpc21hbi9Eb2N1bWVudHMvUmVzZWFyY2ggKFN0YW5mb3JkKS9Qcm9qZWN0cy9EaW1raWQvZGlta2lkL2RhdGEvY2hpbGRyZW4vcnVuLTAxXzIwMTctMDctMjRfYW5vbnltaXplZC5jc3YiKSAlPiUgY2xlYW5fa2lkX3VzX2Z1bihuX3RyaWFscyA9IDQwLCBhZ2VfbG93ZXIgPSA3LCBhZ2VfdXBwZXIgPSA5KQoKIyBVUyA3LTl5bywgOSBjaGFyYWN0ZXJzCmRfdXM3OV85Y2hhciA8LSByZWFkLmNzdigiL1VzZXJzL2t3ZWlzbWFuL0RvY3VtZW50cy9SZXNlYXJjaCAoU3RhbmZvcmQpL1Byb2plY3RzL0RpbWtpZC9kaW1raWQvZGF0YS9jaGlsZHJlbi9ydW4tMDJfMjAxNy0wOC0wOF9hbm9ueW1pemVkLmNzdiIpICU+JSBjbGVhbl9raWRfdXNfZnVuKG5fdHJpYWxzID0gMjAsIGFnZV9sb3dlciA9IDcsIGFnZV91cHBlciA9IDkpCgojIFVTIDQtNnlvLCA5IGNoYXJhY3RlcnMKZF91czQ2XzljaGFyIDwtIHJlYWQuY3N2KCIvVXNlcnMva3dlaXNtYW4vRG9jdW1lbnRzL1Jlc2VhcmNoIChTdGFuZm9yZCkvUHJvamVjdHMvRGlta2lkL2RpbWtpZC9kYXRhL2NoaWxkcmVuL3J1bi0wM18yMDE3LTA4LTIxX2Fub255bWl6ZWQuY3N2IikgJT4lIGNsZWFuX2tpZF91c19mdW4obl90cmlhbHMgPSAyMCwgYWdlX2xvd2VyID0gNCwgYWdlX3VwcGVyID0gNikKYGBgCgojIDctOXlvIFVTIENoaWxkcmVuLCAyIGNoYXJhY3RlcnMKCiMjIE1heGltYWwgc3RydWN0dXJlLCBvYmxpbWluIHJvdGF0aW9uCgpgYGB7ciwgZmlnLndpZHRoID0gNywgZmlnLmFzcCA9IDAuNX0KaGVhdG1hcF9mdW4oZF91czc5XzJjaGFyLCBtYXhfZmFjdF9mdW4obmNvbChkX3VzNzlfMmNoYXIpKSwgIm9ibGltaW4iKSArCiAgbGFicyh0aXRsZSA9ICJGYWN0b3IgbG9hZGluZ3MsIG1heGltYWwgc29sdXRpb246IDctOXlvIFVTIENoaWxkcmVuIiwKICAgICAgIHN1YnRpdGxlID0gIjIgY2hhcmFjdGVycywgNDAgY2FwYWNpdGllcywgb2JsaW1pbiByb3RhdGlvbiIsCiAgICAgICB4ID0gIiIsIHkgPSAiIiwgZmlsbCA9ICIiKQpgYGAKCiMjIFJlZHVjZWQgc3RydWN0dXJlLCBvYmxpbWluIHJvdGF0aW9uCgpgYGB7ciwgZmlnLndpZHRoID0gMywgZmlnLmFzcCA9IDEuNX0KaGVhdG1hcF9mdW4oZF91czc5XzJjaGFyLCByZXRlbl9mYWN0X2Z1bihkX3VzNzlfMmNoYXIsICJvYmxpbWluIiksICJvYmxpbWluIikgKwogIGxhYnModGl0bGUgPSAiRmFjdG9yIGxvYWRpbmdzLCBhZnRlciByZXRlbnRpb246IDctOXlvIFVTIENoaWxkcmVuIiwKICAgICAgIHN1YnRpdGxlID0gIjIgY2hhcmFjdGVycywgNDAgY2FwYWNpdGllcywgb2JsaW1pbiByb3RhdGlvbiIsCiAgICAgICB4ID0gIiIsIHkgPSAiIiwgZmlsbCA9ICIiKQpgYGAKCiMjIEFsdGVybmF0aXZlIGZhY3RvciByZXRlbnRpb24gbWV0aG9kcwoKYGBge3J9CmZhLnBhcmFsbGVsKGRfdXM3OV8yY2hhcikKYGBgCgpgYGB7cn0KVlNTKGRfdXM3OV8yY2hhcikKYGBgCgpgYGB7ciwgZmlnLndpZHRoID0gMywgZmlnLmFzcCA9IDEsIGluY2x1ZGUgPSBGfQpoZWF0bWFwX2Z1bihkX3VzNzlfMmNoYXIsIDUsICJvYmxpbWluIikgKwogIGxhYnModGl0bGUgPSAiRmFjdG9yIGxvYWRpbmdzLCBCSUMgcmV0ZW50aW9uOiA3LTl5byBVUyBDaGlsZHJlbiIsCiAgICAgICBzdWJ0aXRsZSA9ICIyIGNoYXJhY3RlcnMsIDQwIGNhcGFjaXRpZXMsIG9ibGltaW4gcm90YXRpb24iLAogICAgICAgeCA9ICIiLCB5ID0gIiIsIGZpbGwgPSAiIikKYGBgCgojIyBDbHVzdGVyaW5nIHdpdGhpbiByZWR1Y2VkIGZhY3RvciBzcGFjZQoKYGBge3IsIGZpZy53aWR0aCA9IDQsIGZpZy5hc3AgPSAwLjY3fQojIHBhcihtYXIgPSBjKDEsIDEsIDEsIDYpKQpjbHVzdCA8LSBmYShkX3VzNzlfMmNoYXIsIAogICAgICAgICAgICByZXRlbl9mYWN0X2Z1bihkX3VzNzlfMmNoYXIsICJvYmxpbWluIiksICJvYmxpbWluIikkbG9hZGluZ3NbXSAlPiUKICBkYXRhLmZyYW1lKCkgJT4lCiAgZGlzdCgpICU+JQogIGhjbHVzdCgpCgpjbHVzdCAlPiUKICBhcy5kZW5kcm9ncmFtKCkgJT4lCiAgc2V0KCJsYWJlbHNfY29sIiwgdmFsdWUgPSBjKCIjYTZjZWUzIiwgIiMxZjc4YjQiLCAiI2IyZGY4YSIsICIjMzNhMDJjIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiNmYjlhOTkiLCAiI2UzMWExYyIsICIjZmRiZjZmIiwgIiNmZjdmMDAiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiNjYWIyZDYiLCAiIzZhM2Q5YSIsICIjZmZmZjk5IiwgIiNiMTU5MjgiKSwgCiAgICAgIGsgPSA2KSAlPiUKICBzZXQoImJyYW5jaGVzX2x3ZCIsIDAuNSkgJT4lCiAgIyBzZXQoImxlYXZlc19wY2giLCAxNikgJT4lCiAgIyBwbG90KGhvcml6ID0gVCkKICBhcy5nZ2RlbmQoKSAlPiUKICBnZ3Bsb3QoaG9yaXogPSBGKSArCiAgZ2VvbV9obGluZSh5aW50ZXJjZXB0ID0gMiwgbHR5ID0gMiwgY29sb3IgPSAiYmxhY2siKSArCiAgY29vcmRfY2FydGVzaWFuKHlsaW0gPSBjKC0wLjcsIG1heChjbHVzdCRoZWlnaHQpKSkgKwogIGxhYnModGl0bGUgPSAiSGllcmFyY2hpY2FsIGNsdXN0ZXJpbmcgd2l0aGluIHJlZHVjZWQgZmFjdG9yIHNwYWNlOiA3LTl5byBVUyBDaGlsZHJlbiIsCiAgICAgICBzdWJ0aXRsZSA9ICIyIGNoYXJhY3RlcnMsIDQwIGNhcGFjaXRpZXMsIG9ibGltaW4gcm90YXRpb24iKQoKcm0oY2x1c3QpCmBgYAoKCiMgNy05eW8gVVMgQ2hpbGRyZW4sIDkgY2hhcmFjdGVycwoKIyMgTWF4aW1hbCBzdHJ1Y3R1cmUsIG9ibGltaW4gcm90YXRpb24KCmBgYHtyLCBmaWcud2lkdGggPSA0LCBmaWcuYXNwID0gMC42N30KaGVhdG1hcF9mdW4oZF91czc5XzljaGFyLCBtYXhfZmFjdF9mdW4obmNvbChkX3VzNzlfOWNoYXIpKSwgIm9ibGltaW4iKSArCiAgbGFicyh0aXRsZSA9ICJGYWN0b3IgbG9hZGluZ3MsIG1heGltYWwgc29sdXRpb246IDctOXlvIFVTIENoaWxkcmVuIiwKICAgICAgIHN1YnRpdGxlID0gIjkgY2hhcmFjdGVycywgMjAgY2FwYWNpdGllcywgb2JsaW1pbiByb3RhdGlvbiIsCiAgICAgICB4ID0gIiIsIHkgPSAiIiwgZmlsbCA9ICIiKQpgYGAKCiMjIFJlZHVjZWQgc3RydWN0dXJlLCBvYmxpbWluIHJvdGF0aW9uCgpgYGB7ciwgZmlnLndpZHRoID0gMywgZmlnLmFzcCA9IDF9CmhlYXRtYXBfZnVuKGRfdXM3OV85Y2hhciwgcmV0ZW5fZmFjdF9mdW4oZF91czc5XzljaGFyLCAib2JsaW1pbiIpLCAib2JsaW1pbiIpICsKICBsYWJzKHRpdGxlID0gIkZhY3RvciBsb2FkaW5ncywgYWZ0ZXIgcmV0ZW50aW9uOiA3LTl5byBVUyBDaGlsZHJlbiIsCiAgICAgICBzdWJ0aXRsZSA9ICI5IGNoYXJhY3RlcnMsIDIwIGNhcGFjaXRpZXMsIG9ibGltaW4gcm90YXRpb24iLAogICAgICAgeCA9ICIiLCB5ID0gIiIsIGZpbGwgPSAiIikKYGBgCgoKIyMgQWx0ZXJuYXRpdmUgZmFjdG9yIHJldGVudGlvbiBtZXRob2RzCgpgYGB7cn0KZmEucGFyYWxsZWwoZF91czc5XzljaGFyKQpgYGAKCmBgYHtyfQpWU1MoZF91czc5XzljaGFyKQpgYGAKCgojIyBDbHVzdGVyaW5nIHdpdGhpbiByZWR1Y2VkIGZhY3RvciBzcGFjZQoKYGBge3IsIGZpZy53aWR0aCA9IDQsIGZpZy5hc3AgPSAwLjY3fQojIHBhcihtYXIgPSBjKDEsIDEsIDEsIDYpKQpjbHVzdCA8LSBmYShkX3VzNzlfOWNoYXIsIAogICAgICAgICAgICByZXRlbl9mYWN0X2Z1bihkX3VzNzlfOWNoYXIsICJvYmxpbWluIiksICJvYmxpbWluIikkbG9hZGluZ3NbXSAlPiUKICBkYXRhLmZyYW1lKCkgJT4lCiAgZGlzdCgpICU+JQogIGhjbHVzdCgpCgpjbHVzdCAlPiUKICBhcy5kZW5kcm9ncmFtKCkgJT4lCiAgc2V0KCJsYWJlbHNfY29sIiwgdmFsdWUgPSBjKCIjYTZjZWUzIiwgIiMxZjc4YjQiLCAiI2IyZGY4YSIsICIjMzNhMDJjIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiNmYjlhOTkiLCAiI2UzMWExYyIsICIjZmRiZjZmIiwgIiNmZjdmMDAiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiNjYWIyZDYiLCAiIzZhM2Q5YSIsICIjZmZmZjk5IiwgIiNiMTU5MjgiKSwgCiAgICAgIGsgPSA0KSAlPiUKICBzZXQoImJyYW5jaGVzX2x3ZCIsIDAuNSkgJT4lCiAgIyBzZXQoImxlYXZlc19wY2giLCAxNikgJT4lCiAgIyBwbG90KGhvcml6ID0gVCkKICBhcy5nZ2RlbmQoKSAlPiUKICBnZ3Bsb3QoaG9yaXogPSBGKSArCiAgZ2VvbV9obGluZSh5aW50ZXJjZXB0ID0gMiwgbHR5ID0gMiwgY29sb3IgPSAiYmxhY2siKSArCiAgY29vcmRfY2FydGVzaWFuKHlsaW0gPSBjKC0wLjcsIG1heChjbHVzdCRoZWlnaHQpKSkgKwogIGxhYnModGl0bGUgPSAiSGllcmFyY2hpY2FsIGNsdXN0ZXJpbmcgd2l0aGluIHJlZHVjZWQgZmFjdG9yIHNwYWNlOiA3LTl5byBVUyBDaGlsZHJlbiIsCiAgICAgICBzdWJ0aXRsZSA9ICI5IGNoYXJhY3RlcnMsIDIwIGNhcGFjaXRpZXMsIG9ibGltaW4gcm90YXRpb24iKQoKcm0oY2x1c3QpCmBgYAoKIyA0LTZ5byBVUyBDaGlsZHJlbgoKIyMgTWF4aW1hbCBzdHJ1Y3R1cmUsIG9ibGltaW4gcm90YXRpb24KCmBgYHtyLCBmaWcud2lkdGggPSA0LCBmaWcuYXNwID0gMC42N30KaGVhdG1hcF9mdW4oZF91czQ2XzljaGFyLCBtYXhfZmFjdF9mdW4obmNvbChkX3VzNDZfOWNoYXIpKSwgIm9ibGltaW4iKSArCiAgbGFicyh0aXRsZSA9ICJGYWN0b3IgbG9hZGluZ3MsIG1heGltYWwgc29sdXRpb246IDQtNnlvIFVTIENoaWxkcmVuIiwKICAgICAgIHN1YnRpdGxlID0gIjkgY2hhcmFjdGVycywgMjAgY2FwYWNpdGllcywgb2JsaW1pbiByb3RhdGlvbiIsCiAgICAgICB4ID0gIiIsIHkgPSAiIiwgZmlsbCA9ICIiKQpgYGAKCiMjIFJlZHVjZWQgc3RydWN0dXJlLCBvYmxpbWluIHJvdGF0aW9uCgpgYGB7ciwgZmlnLndpZHRoID0gMywgZmlnLmFzcCA9IDF9CmhlYXRtYXBfZnVuKGRfdXM0Nl85Y2hhciwgcmV0ZW5fZmFjdF9mdW4oZF91czQ2XzljaGFyLCAib2JsaW1pbiIpLCAib2JsaW1pbiIpICsKICBsYWJzKHRpdGxlID0gIkZhY3RvciBsb2FkaW5ncywgYWZ0ZXIgcmV0ZW50aW9uOiA0LTZ5byBVUyBDaGlsZHJlbiIsCiAgICAgICBzdWJ0aXRsZSA9ICI5IGNoYXJhY3RlcnMsIDIwIGNhcGFjaXRpZXMsIG9ibGltaW4gcm90YXRpb24iLAogICAgICAgeCA9ICIiLCB5ID0gIiIsIGZpbGwgPSAiIikKYGBgCgoKIyMgQWx0ZXJuYXRpdmUgZmFjdG9yIHJldGVudGlvbiBtZXRob2RzCgpgYGB7cn0KZmEucGFyYWxsZWwoZF91czQ2XzljaGFyKQpgYGAKCmBgYHtyfQpWU1MoZF91czQ2XzljaGFyKQpgYGAKCiMjIENsdXN0ZXJpbmcgd2l0aGluIHJlZHVjZWQgZmFjdG9yIHNwYWNlCgpgYGB7ciwgZmlnLndpZHRoID0gNCwgZmlnLmFzcCA9IDAuNjd9CiMgcGFyKG1hciA9IGMoMSwgMSwgMSwgNikpCmNsdXN0IDwtIGZhKGRfdXM0Nl85Y2hhciwgCiAgICAgICAgICAgIHJldGVuX2ZhY3RfZnVuKGRfdXM0Nl85Y2hhciwgIm9ibGltaW4iKSwgIm9ibGltaW4iKSRsb2FkaW5nc1tdICU+JQogIGRhdGEuZnJhbWUoKSAlPiUKICBkaXN0KCkgJT4lCiAgaGNsdXN0KCkKCmNsdXN0ICU+JQogIGFzLmRlbmRyb2dyYW0oKSAlPiUKICBzZXQoImxhYmVsc19jb2wiLCAKICAgICAgIyB2YWx1ZSA9IGNvbG9yUmFtcFBhbGV0dGUoc29sYXJpemVkX3BhbCgpKDgpKSgyMCksCiAgICAgIHZhbHVlID0gYygiI2E2Y2VlMyIsICIjMWY3OGI0IiwgIiNiMmRmOGEiLCAiIzMzYTAyYyIsCiAgICAgICAgICAgICAgICAiI2ZiOWE5OSIsICIjZTMxYTFjIiwgIiNmZGJmNmYiLCAiI2ZmN2YwMCIsCiAgICAgICAgICAgICAgICAiI2NhYjJkNiIsICIjNmEzZDlhIiwgIiNmZmZmOTkiLCAiI2IxNTkyOCIpLAogICAgICBrID0gNikgJT4lCiAgc2V0KCJicmFuY2hlc19sd2QiLCAwLjUpICU+JQogICMgc2V0KCJsZWF2ZXNfcGNoIiwgMTYpICU+JQogICMgcGxvdChob3JpeiA9IFQpCiAgYXMuZ2dkZW5kKCkgJT4lCiAgZ2dwbG90KGhvcml6ID0gRikgKwogIGdlb21faGxpbmUoeWludGVyY2VwdCA9IDIsIGx0eSA9IDIsIGNvbG9yID0gImJsYWNrIikgKwogIGNvb3JkX2NhcnRlc2lhbih5bGltID0gYygtMC43LCBtYXgoY2x1c3QkaGVpZ2h0KSkpICsKICBsYWJzKHRpdGxlID0gIkhpZXJhcmNoaWNhbCBjbHVzdGVyaW5nIHdpdGhpbiByZWR1Y2VkIGZhY3RvciBzcGFjZTogNC02eW8gVVMgQ2hpbGRyZW4iLAogICAgICAgc3VidGl0bGUgPSAiOSBjaGFyYWN0ZXJzLCAyMCBjYXBhY2l0aWVzLCBvYmxpbWluIHJvdGF0aW9uIikKCnJtKGNsdXN0KQpgYGAKCg==